
package edu.java.homework.hw07.test0604b;

//Dadeni sa slednite klasove i operatori. 
//Koi ot obeliazanite s (a) do (e) tvyrdeniia
//ne sa verni i zashto:


class Foo{
	private int i;
	public void f(){ 
	    System.out.println("Foo.f()");
	}
	public void g(){ 
	    System.out.println("Foo.g()");
	}
}

//klasyt Bar e pravilen podklas na klasa Foo;      (a)
class Bar extends Foo{
	public int j;
	public void g(){ 
	    System.out.println("Bar.g()");
	}
}

// Declarations
public class Test0604b{
	public static void main(String[] args){
		Foo a= new Foo();
		Bar b= new Bar();
		
		b.f();                 // operatoryt e dopustim;  (b)
//		a.j= 5;                // operatoryt e dopustim;  (c)
		a.g();                 // operatoryt e dopustim;  (d)
//		b.i= 3;                // operatoryt e dopustim;  (e)
		
	}
}

// (a) ок
// (b) ок, ще се изпълни f() метода на Foo, понеже Bar не го override-ва
// (c) грешка, а е обект на класа Foo, а той няма поле j
// (d) ок, ще се изпълни метода g() на Foo класа
// (e) грешка, понеже класът  Bar не наследява полето i от класа Foo. Защото i e private 




